/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* This file has been modified by Huawei to verify type inference by adding verification statements.
*/

// === tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity6.ts ===
declare function AssertType(value:any, type:string):void;
function c255lsqr8h(a7, a6, a5, a4, a3, a2, a1, a0) {
    let r = [];
AssertType(r, "any[]");
AssertType([], "undefined[]");

    let v;
AssertType(v, "any");

    r[0] = (v = a0*a0) & 0xFFFF;
AssertType(r[0] = (v = a0*a0) & 0xFFFF, "number");
AssertType(r[0], "any");
AssertType(r, "any[]");
AssertType(0, "int");
AssertType((v = a0*a0) & 0xFFFF, "number");
AssertType((v = a0*a0), "number");
AssertType(v = a0*a0, "number");
AssertType(v, "any");
AssertType(a0*a0, "number");
AssertType(a0, "any");
AssertType(a0, "any");
AssertType(0xFFFF, "int");

    r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF;
AssertType(r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF, "number");
AssertType(r[1], "any");
AssertType(r, "any[]");
AssertType(1, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a1), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a1, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a1, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a1, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a1, "any");
AssertType(0xFFFF, "int");

    r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF;
AssertType(r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF, "number");
AssertType(r[2], "any");
AssertType(r, "any[]");
AssertType(2, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a2 + a1*a1, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a2, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a2, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a2, "any");
AssertType(a1*a1, "number");
AssertType(a1, "any");
AssertType(a1, "any");
AssertType(0xFFFF, "int");

    r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF;
AssertType(r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF, "number");
AssertType(r[3], "any");
AssertType(r, "any[]");
AssertType(3, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a3, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a3, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a3, "any");
AssertType(2*a1*a2, "number");
AssertType(2*a1, "number");
AssertType(2, "int");
AssertType(a1, "any");
AssertType(a2, "any");
AssertType(0xFFFF, "int");

    r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF;
AssertType(r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF, "number");
AssertType(r[4], "any");
AssertType(r, "any[]");
AssertType(4, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a4, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a4, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a4, "any");
AssertType(2*a1*a3, "number");
AssertType(2*a1, "number");
AssertType(2, "int");
AssertType(a1, "any");
AssertType(a3, "any");
AssertType(a2*a2, "number");
AssertType(a2, "any");
AssertType(a2, "any");
AssertType(0xFFFF, "int");

    r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF;
AssertType(r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF, "number");
AssertType(r[5], "any");
AssertType(r, "any[]");
AssertType(5, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a5, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a5, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a5, "any");
AssertType(2*a1*a4, "number");
AssertType(2*a1, "number");
AssertType(2, "int");
AssertType(a1, "any");
AssertType(a4, "any");
AssertType(2*a2*a3, "number");
AssertType(2*a2, "number");
AssertType(2, "int");
AssertType(a2, "any");
AssertType(a3, "any");
AssertType(0xFFFF, "int");

    r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF;
AssertType(r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF, "number");
AssertType(r[6], "any");
AssertType(r, "any[]");
AssertType(6, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a6, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a6, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a6, "any");
AssertType(2*a1*a5, "number");
AssertType(2*a1, "number");
AssertType(2, "int");
AssertType(a1, "any");
AssertType(a5, "any");
AssertType(2*a2*a4, "number");
AssertType(2*a2, "number");
AssertType(2, "int");
AssertType(a2, "any");
AssertType(a4, "any");
AssertType(a3*a3, "number");
AssertType(a3, "any");
AssertType(a3, "any");
AssertType(0xFFFF, "int");

    r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF;
AssertType(r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF, "number");
AssertType(r[7], "any");
AssertType(r, "any[]");
AssertType(7, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6, "number");
AssertType(((v / 0x10000) | 0) + 2*a0*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a0*a7, "number");
AssertType(2*a0, "number");
AssertType(2, "int");
AssertType(a0, "any");
AssertType(a7, "any");
AssertType(2*a1*a6, "number");
AssertType(2*a1, "number");
AssertType(2, "int");
AssertType(a1, "any");
AssertType(a6, "any");
AssertType(2*a2*a5, "number");
AssertType(2*a2, "number");
AssertType(2, "int");
AssertType(a2, "any");
AssertType(a5, "any");
AssertType(2*a3*a4, "number");
AssertType(2*a3, "number");
AssertType(2, "int");
AssertType(a3, "any");
AssertType(a4, "any");
AssertType(0xFFFF, "int");

    r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF;
AssertType(r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF, "number");
AssertType(r[8], "any");
AssertType(r, "any[]");
AssertType(8, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4, "number");
AssertType(((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5, "number");
AssertType(((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6, "number");
AssertType(((v / 0x10000) | 0) + 2*a1*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a1*a7, "number");
AssertType(2*a1, "number");
AssertType(2, "int");
AssertType(a1, "any");
AssertType(a7, "any");
AssertType(2*a2*a6, "number");
AssertType(2*a2, "number");
AssertType(2, "int");
AssertType(a2, "any");
AssertType(a6, "any");
AssertType(2*a3*a5, "number");
AssertType(2*a3, "number");
AssertType(2, "int");
AssertType(a3, "any");
AssertType(a5, "any");
AssertType(a4*a4, "number");
AssertType(a4, "any");
AssertType(a4, "any");
AssertType(0xFFFF, "int");

    r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF;
AssertType(r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF, "number");
AssertType(r[9], "any");
AssertType(r, "any[]");
AssertType(9, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5, "number");
AssertType(((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6, "number");
AssertType(((v / 0x10000) | 0) + 2*a2*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a2*a7, "number");
AssertType(2*a2, "number");
AssertType(2, "int");
AssertType(a2, "any");
AssertType(a7, "any");
AssertType(2*a3*a6, "number");
AssertType(2*a3, "number");
AssertType(2, "int");
AssertType(a3, "any");
AssertType(a6, "any");
AssertType(2*a4*a5, "number");
AssertType(2*a4, "number");
AssertType(2, "int");
AssertType(a4, "any");
AssertType(a5, "any");
AssertType(0xFFFF, "int");

    r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF;
AssertType(r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF, "number");
AssertType(r[10], "any");
AssertType(r, "any[]");
AssertType(10, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5, "number");
AssertType(((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6, "number");
AssertType(((v / 0x10000) | 0) + 2*a3*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a3*a7, "number");
AssertType(2*a3, "number");
AssertType(2, "int");
AssertType(a3, "any");
AssertType(a7, "any");
AssertType(2*a4*a6, "number");
AssertType(2*a4, "number");
AssertType(2, "int");
AssertType(a4, "any");
AssertType(a6, "any");
AssertType(a5*a5, "number");
AssertType(a5, "any");
AssertType(a5, "any");
AssertType(0xFFFF, "int");

    r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF;
AssertType(r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF, "number");
AssertType(r[11], "any");
AssertType(r, "any[]");
AssertType(11, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6, "number");
AssertType(((v / 0x10000) | 0) + 2*a4*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a4*a7, "number");
AssertType(2*a4, "number");
AssertType(2, "int");
AssertType(a4, "any");
AssertType(a7, "any");
AssertType(2*a5*a6, "number");
AssertType(2*a5, "number");
AssertType(2, "int");
AssertType(a5, "any");
AssertType(a6, "any");
AssertType(0xFFFF, "int");

    r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF;
AssertType(r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF, "number");
AssertType(r[12], "any");
AssertType(r, "any[]");
AssertType(12, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a5*a7 + a6*a6, "number");
AssertType(((v / 0x10000) | 0) + 2*a5*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a5*a7, "number");
AssertType(2*a5, "number");
AssertType(2, "int");
AssertType(a5, "any");
AssertType(a7, "any");
AssertType(a6*a6, "number");
AssertType(a6, "any");
AssertType(a6, "any");
AssertType(0xFFFF, "int");

    r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF;
AssertType(r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF, "number");
AssertType(r[13], "any");
AssertType(r, "any[]");
AssertType(13, "int");
AssertType((v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + 2*a6*a7), "number");
AssertType(v = ((v / 0x10000) | 0) + 2*a6*a7, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + 2*a6*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(2*a6*a7, "number");
AssertType(2*a6, "number");
AssertType(2, "int");
AssertType(a6, "any");
AssertType(a7, "any");
AssertType(0xFFFF, "int");

    r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF;
AssertType(r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF, "number");
AssertType(r[14], "any");
AssertType(r, "any[]");
AssertType(14, "int");
AssertType((v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF, "number");
AssertType((v = ((v / 0x10000) | 0) + a7*a7), "number");
AssertType(v = ((v / 0x10000) | 0) + a7*a7, "number");
AssertType(v, "any");
AssertType(((v / 0x10000) | 0) + a7*a7, "number");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");
AssertType(a7*a7, "number");
AssertType(a7, "any");
AssertType(a7, "any");
AssertType(0xFFFF, "int");

    r[15] = ((v / 0x10000) | 0);
AssertType(r[15] = ((v / 0x10000) | 0), "number");
AssertType(r[15], "any");
AssertType(r, "any[]");
AssertType(15, "int");
AssertType(((v / 0x10000) | 0), "number");
AssertType((v / 0x10000) | 0, "number");
AssertType((v / 0x10000), "number");
AssertType(v / 0x10000, "number");
AssertType(v, "any");
AssertType(0x10000, "int");
AssertType(0, "int");

AssertType(r, "any[]");
    return r;
}


